@CI
2年前 提问
1个回答

DNS 服务器面临的安全问题有哪些

一颗小胡椒
2年前
官方采纳

DNS服务器面临的安全问题主要包括:

DNS域名信息欺骗攻击

DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如,将用户引导到错误的互联网站点,或者发送一个电子邮件到一个未经授权的邮件服务器。网络攻击者通常通过四种方法进行DNS欺骗。

拒绝服务攻击

黑客主要利用一些DNS软件的漏洞,如BIND 9版本(版本9.2.0以前的9系列),如果有人向运行BIND的设备发送特定的DNS数据包请求,BIND就会自动关闭。攻击者只能使BIND关闭,而无法在服务器上执行任何命令。如果得不到DNS服务,那么就会产生一个严重的问题:由于网址不能解析为IP地址,用户将无法访问互联网。这样,DNS产生的问题就好像是互联网本身所产生的问题,这将导致混乱。

缓冲区漏洞攻击

BIND软件的默认设置是允许主机间进行区带传输(Zone Transfer)。区带传输主要用于主域名服务器与辅域名服务器之间的数据同步,使辅域名服务器可以从主域名服务器获得新的数据信息。一旦启用区带传输而不做任何限制,很可能会造成信息泄露,黑客将可以获得整个授权区域内的所有主机的信息,判断主机功能及安全性,从中发现目标进行攻击。一旦这些信息泄露,攻击者就可以根据它轻松地推测主域名服务器的网络结构,并从这些信息中判断其功能或发现那些防范措施较弱的机器。

分布式拒绝服务攻击

DDoS攻击通过使用攻击者控制的几十台或几百台计算机攻击一台主机,使得拒绝服务攻击更难以防范:使拒绝服务攻击更难以通过阻塞单一攻击源主机的数据流,来防范拒绝服务攻击。SYN Flood是针对DNS服务器最常见的分布式拒绝服务攻击。SYN Flood攻击利用IPv4中TCP协议的三次握手(Three-Way Handshake)过程进行攻击。我们已经知道协议的规定,如果一端想向另一端发起TCP连接,它需要首先发送TCP SYN包到对方,对方收到后发送一个TCP SYN+ACK包回来,发起方再发送TCP ACK包回去,这样三次握手就结束了。我们把TCP连接的发起方叫做“TCP客户机(TCP Client)”,TCP连接的接收方叫做“TCP服务器(TCPServer)”。

缓冲区溢出漏洞攻击

BIND软件的许多版本存在缓冲区溢出漏洞,当攻击者获取了管理员权限时,就可以入侵BIND所在的主机,并以管理员的身份执行任意命令。这种攻击的危害性比较严重,攻击者不仅获得了DNS服务器上所有授权区域内的数据信息,甚至可以直接修改授权区域内的任意数据。针对这种攻击,主要是及时发现DNS软件的版本漏洞,并进行升级。黑客利用DNS服务器软件存在的漏洞,比如对特定的输入没有进行严格检查,那么有可能被攻击者利用,攻击者构造特殊的畸形数据包来对DNS服务器进行缓冲区溢出攻击。如果这一攻击成功,就会造成DNS服务停止,或者攻击者能够在DNS服务器上执行其设定的任意代码。例如,针对Linux平台的BIND的攻击程序(Lionworm),就是利用某些版本的BIND漏洞,取得root权限,一旦入侵完成之后,入侵者就可以完全控制整个相关的网络系统,影响非常严重。

不安全的DNS动态更新

最早设计DNS时所有运行TCP/IP的计算机都是手工配置的。用特定的IP地址手工配置一台计算机时,它的A资源记录和PTR资源记录也要用手工配置。随着DHCP(动态主机配置协议)的出现,DHCP客户机由DHCP服务器动态分配IP地址,使手工更新其A记录和PTR记录变得很难管理。因此,在RFC 2136中提出了DNS动态更新,这使得DNS客户端在IP地址或名称出现更改的时候,都可利用DNS服务器来注册和动态更新其资源记录。然而,尽管DNS动态更新协议规定了怎样的系统才允许动态更新一台主域名服务器,但是DNS仍然可能受到威胁,比如攻击者可以利用IP欺骗,伪装成DNS服务器信任的主机对系统进行更新或者损害,并可以对主域名服务器进行各种动态更新攻击,比如删减、增加、修改资源记录。